// 作者:于大明
// 职责：处理业务逻辑

let mixin = {
	// 负责程序中需要进行set的数据 就是页面交互需要改的数据 比如点击checkbox 需要设置true false 和存放ajax的输入输出 (尽量少去定义data里面的属性 多用computed或者filters或者组件进行处理) 
	// 1 能不能在页面单行代码实现
	// 2 能不能不用data methods去实现这个功能
	data() {
		return {
			rewardedVideoAd: null
		};
	},
	// 负责和页面事件进行交互
	methods: {
		lookAd() {
			// 用户触发广告后，显示激励视频广告
			if (this.rewardedVideoAd) {
				uni.showLoading({
					title: '广告拉取中...',
					mask: false
				});
				this.rewardedVideoAd.show().catch(() => {
					uni.showLoading({
						title: '广告拉取中...',
						mask: false
					});
					// 失败重试
					this.rewardedVideoAd.load()
						.then(() => this.rewardedVideoAd.show())
						.catch(err => {
							this.$cw.showMsg('激励视频 广告显示失败', 'none');
						}).finally(() => {
							uni.hideLoading();
						})
				}).finally(() => {
					uni.hideLoading();
				})
			}
		},
		copyOut() {
			uni.setClipboardData({
				data: this.queryObj.outStr,
				showToast: true
			});
		},
		tjForm() {
			//this.unLockVideo(this.queryObj.userId,this.queryObj.otherId);
			// const res= await this.unLockVideo('B4A092D8-9F66-47BE-4199-08DB9BF795C1','BFE8A242-8E6A-EE11-B0DB-A27D054316D2');
			//this.$cw.showConfirm(JSON.stringify(res));
			if (!this.queryObj.inputStr && !this.queryObj.userId) {
				this.$cw.showMsg('输入不能为空', 'none');
				return;
			}
			this.lookAd();
		},
		dealClick() {
			if (this.queryObj.userId) {
				this.unLockVideo(this.queryObj.userId, this.queryObj.otherId);
			} else {
				if (!this.queryObj.inputStr && !this.queryObj.userId) {
					this.$cw.showMsg('输入不能为空', 'none');
					return;
				}
				if (this.vuex_adObj.count > 0) {
					this.vuex_adObj.count--;
					this.$cw.setVuex('vuex_adObj', this.vuex_adObj);
				}

				if (this.queryObj.type == 10) {
					// 短网址
					let dwjs = [
						'https://dwz.cn/ps6MS5Gw',
						'https://dwz.cn/DjCorNZd',
						'https://dwz.cn/xK3zKlIi',
						'https://dwz.cn/SP03clhE',
						'https://dwz.cn/Asdfcmlo',
						'https://dwz.cn/Ghkpsd2',
						'https://dwz.cn/fkjgi3',
						'https://dwz.cn/hjzknd',
						'https://dwz.cn/jmpzgf',
						'https://dwz.cn/klokd',
						'https://dwz.cn/kmlhsk',
					];
					this.queryObj.outStr = dwjs[Math.floor(Math.random() * dwjs.length)];
				} else if (this.queryObj.type == 20) {
					// 视频解析
					let jxs = [
						'https://v26-dy.ixigua.com/3ff0ea87c012436fd3cdd02a9f1cabd1/6527f79f/video/tos/cn/tos-cn-ve-15c001-alinc2/okgCCASTDIgkWQwMAlFiDh9krBfglVAQEfg8AC/?a=2011&ch=0&cr=0&dr=0&net=5&cd=0%7C0%7C0%7C0&cv=1&br=1559&bt=1559&cs=0&ds=4&ft=rkG4k0071FOvWHhWH6xRfz_arYBO5d3M7H2z7tG&mime_type=video_mp4&qs=0&rc=ODc3ODdmNGhlOWk8NWloOkBpam84eXI5cjwzbjMzNGkzM0AuYi4yXjI2NWIxMzZhX2JeYSNpMmQxMmQ0MzFgLS1kLTBzcw%3D%3D&btag=e00030000&dy_q=1697114119&l=202310122035192E7DE19D8E1C1E2634FB',
						'https://v6-dy.ixigua.com/e03a7ef6406e1d8e8d32df8b11b64a09/652802aa/video/tos/cn/tos-cn-ve-15c001-alinc2/o8bKRhGgQBCIJJFgeBAAItuL5lGFbEfsufo7EX/?a=2011&ch=0&cr=0&dr=0&net=5&cd=0%7C0%7C0%7C0&cv=1&br=1267&bt=1267&cs=0&ds=4&ft=rkG4k0071FOvWHhWH6xRfUdErYBO5d3M7H2z7tG&mime_type=video_mp4&qs=0&rc=aDY3OmQzZ2g7OmU4OTU6aEBpM2lzNGs5cjNsbjMzNGkzM0BfYi0vNi8wXy4xNDRjNjRfYSNlZGthMmRrb2VgLS1kLS9zcw%3D%3D&btag=e00028000&dy_q=1697117100&l=2023101221250084B865A5633986290867',
						'https://v6-dy.ixigua.com/0cd591173c67d0fb840479888b18a841/65280227/video/tos/cn/tos-cn-ve-15c001-alinc2/oM9BHeAPgb2bQQFxnlFaAUCYReQAIUuwn9zIDg/?a=2011&ch=0&cr=0&dr=0&net=5&cd=0%7C0%7C0%7C0&cv=1&br=1422&bt=1422&cs=0&ds=4&ft=rkG4k0071FOvWHhWH6xRfpZErYBO5d3M7H2z7tG&mime_type=video_mp4&qs=0&rc=Z2c3ZjhlMzo0M2dnOzxpZEBpMzc0ZTs6Znd3bjMzNGkzM0BiNS4yXy5jNV8xYl5fXl8vYSMyYmNgcjRnMF9gLS1kLS9zcw%3D%3D&btag=e00028000&dy_q=1697117147&l=202310122125466860860A74638C2C6D17'
					]

					this.queryObj.outStr = jxs[Math.floor(Math.random() * jxs.length)];

				} else if (this.queryObj.type == 30) {
					// url加密
					this.queryObj.outStr = encodeURIComponent(this.queryObj.inputStr);
				} else if (this.queryObj.type == 40) {
					// url解密
					this.queryObj.outStr = decodeURIComponent(this.queryObj.inputStr);
				} else if (this.queryObj.type == 50) {
					var regex = new RegExp('\w+');
					this.queryObj.outStr = this.queryObj.inputStr.match(/\d+/g);
				}
			}
		}
	},
	// 不要set的数据 统一用computed实现(能用computed 实现的 尽量用他实现 不要用data和method处理) 有返回值的不需要传参的method用computed实现 
	computed: {
		// 查询条件变化用于监控 命名方式以 calc加data的接口in
		//calcGetStudentListIn() {
		//    return this._.cloneDeep(this.getStudentListIn);
		//},

		// 接口返回值处理 calc加data的接口out 命名规范：前缀加calc
		//calcGetStudentListOut() {
		//    let dataList = this._.cloneDeep(this.getStudentListOut.dataList);
		//    dataList.forEach((item, index) => {
		//        // 有初始化选中的Id 那么选中
		//        if (this.selctId == item.id) {
		//            this.$set(item, 'selected', true);
		//        } else {
		//            // 设置属性需要通过这种方式设置 如之前没有绑定这个属性 需要这种方式设置 不然没办法双向绑定  其他设置为false
		//            this.$set(item, 'selected', false);
		//        }
		//    });
		//    // 尽量用lodash链式语法进行数据处理
		//    const page = 1; // 第几页
		//    const limit = 5; // 每页多少条
		//    const dealList = this._(dataList).chain()
		//        .drop((page - 1) * limit) // 跳过前面数据
		//        .take(limit) // 取几个
		//        .filter(x => x.age <= 10) // 过滤
		//        .map(x => ({
		//            stuName: x.stuName,
		//            age: x.age
		//        })) // 映射数据
		//        .orderBy(['stuName', 'age'], ['desc', 'asc']) // 排序
		//        .uniqBy('stuName') // 去重
		//        .value();
		//    return dealList;
		//},
	},
	// 负责格式化数据 有返回值的需要传参的method 用filters实现
	filters: {
		// 多个参数filter 调用   {{day|weekDayFmt(getStudentListIn.month)}} filter  命名规范：filter后缀加上Fmt  vue3参考: http://knowledge.whcewei.com/CodeKnowledge/Detail-91D4B057-821A-4A0C-96E5-C0BC8CDDDC9C.aspx
		//weekDayFmt(day, yearMonth) {
		//    var weekDay = moment(yearMonth + "-" + day).day();
		//    var weekObj = { 1: "一", 2: "二", 3: "三", 4: "四", 5: "五", 6: "六", 0: "日" };
		//    return weekObj[weekDay];
		//},
	},
	// 负责数据变化后需要和接口交互
	watch: {
		// 监控查询条件的变化 自动请求数据
		//'calcGetStudentListIn': {
		//    handler(val, oldval) {
		//        if (this.$util.isChgForWatch(val, oldval, ['pageIndex', 'sarchValue'])) { // 监控对象中那些数据发生了变化
		//            this.getPageList();
		//        }
		//    },
		//    deep: true,
		//    immediate: true,
		//}
	}
}
export default mixin;